With a personal computer and an appropriate software package, a user can produce virtually any type of document that may be desired. For example, word processing software is used to produce text documents. Graphic design or computer-aided design software can be used to produce diagrams, charts, graphs, designs, etc. Spreadsheet software allows a user to manage large amounts of financial and other types of information.
Frequently, it is desirable to generate a hardcopy of a document or data set that is produced or stored on a personal computer or server. A hardcopy may be desired, for example, for record keeping purposes or to share with another party. Consequently, a wide variety of printers and printing devices have been developed that can receive a print job from a host computer and produce a hardcopy of the document or data represented by that print job. As used herein and in the appended claims, the term “printer” is broadly used to refer to any device that produces a hardcopy output. A “print job” is data used by a printer to generate a hardcopy output.
Printers are generally characterized as “stand-alone” or “networked.” A stand-alone printer is connected directly to a port of the computer system or client device for which it is used and is often located physically near the computer system. Networked printers, on the other hand, are connected to a network such as a local area network (LAN) or a wide area network (WAN) and may be used by any computer system or other client device connected to the same network. As used herein and in the appended claims, the term “client” or “client device” is broadly used to refer to any device or executing program that generates a print job for a printer.
It is common to manage the communications between printers and clients on a network using a print server. A print server is a device that is dedicated to installing, configuring, and managing networked printers without affecting or placing demands on a network's servers. For example, print servers may install printer drivers on clients of the network that enable the clients to send print jobs to the networked printers. They may also manage and distribute print jobs that are generated by clients of the network to the various printers on the network.
Many print servers are configured to restrict certain users' access to the available networked printers. This is typically done by controlling a set of “permissions” assigned to each user. For example, a particular user may be permitted by the print server to send a print job to one printer on the network, but not to another. Print servers restrict access to networked printers for a variety of reasons including, but not limited to, printing capacity, security, and economic reasons.
Permissions are usually managed on a domain level. In other words, each time a user logs on to a client anywhere in the network, the client communicates with the print server or with a different server where permissions for each user are stored. If the print server communicates to the client that the user has permission to print to a specific printer, the client device will then allow the user to address a print job to that printer. The client device or print server may refuse to submit a print job to any printer for which the user does not have permission. Therefore, the permissions assigned to a user will be effective regardless of the client device on the network that the user has accessed. Domain level permission management makes it difficult to restrict printing from specific clients.